home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / DATABASE / OBJ1_2.ZIP;1 / OCLIP.CH < prev    next >
Encoding:
Text File  |  1992-06-30  |  2.4 KB  |  75 lines

  1. /*
  2. …ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕª
  3. ∫                                o:Clip                                ∫
  4. ∫             An Object Oriented Extension to Clipper 5.01             ∫
  5. ∫                 (c) 1991 Peter M. Freese, CyberSoft                  ∫
  6. »ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕº
  7.  
  8. Version 1.01x - 06/25/92 - the changes were made by JHK, JHK-Software, Piestany
  9.  
  10. */
  11.  
  12. #xcommand EXPORT: =>
  13. #xcommand PRIVATE: =>
  14. #xcommand PROTECTED: =>
  15.  
  16. #xcommand METHOD PROCEDURE <*rest*> => ;
  17.   procedure <rest>;;
  18.   local self:=__GetSelf(QSelf())
  19.  
  20. #xcommand METHOD FUNCTION <*rest*>  => ;
  21.   function <rest>;;
  22.   local self:=__GetSelf(QSelf())
  23.  
  24. #xcommand CONSTRUCTOR <ctor>([<list,...>]) NO PARENT => ;
  25.   function <ctor>(<list>);;
  26.   local self:=__ParentNew(QSelf());;
  27.   local __Dummy:=if(QSelf()\[1]==nil,__PutSelf(nil),)
  28.  
  29. #xcommand CONSTRUCTOR <ctor>([<list,...>]) => ;
  30.   constructor <ctor>(<list>) parent new(<list>)
  31.  
  32. #xcommand CONSTRUCTOR <ctor>([<list,...>]) PARENT <method> => ;
  33.   constructor <ctor>(<list>) parent <method>(<list>)
  34.  
  35. #xcommand CONSTRUCTOR <ctor>([<list,...>]) PARENT <method>([<pars,...>]) => ;
  36.   function <ctor>(<list>);;
  37.   local self:=__ParentNew(QSelf());;
  38.   local __Dummy:=if(QSelf()\[1]==nil,__PutSelf(nil),QSelf()\[1]:<method>(<pars>))
  39.  
  40. #xcommand        CLASS <name> [FROM <parent>] => CLASS <name> [XFROM <parent>()]
  41. #xcommand CREATE CLASS <name> [FROM <parent>] => CLASS <name> [XFROM <parent>()]
  42.  
  43. #xcommand CLASS <name> [ XFROM <parent> ] => ;
  44.   FUNCTION <name>;;
  45.   STATIC hClass := 0, oParent;;
  46.   LOCAL oNew;;
  47.     if hClass == 0;;
  48.       oParent := __DefineClass(<"name">,<{parent}>)
  49.  
  50. #xcommand VAR <var1> [,<varN>] => ;
  51.       __AddVar(<"var1">) [; __AddVar(<"varN">)]
  52.  
  53. #xcommand METHOD <methodName> [,<*methodN*>] => ;
  54.       __AddMethod(<"methodName">, <"methodName">) [; METHOD <methodN>]
  55.  
  56. #xcommand METHOD <methodName> = <methodUDF> [,<*methodN*>] => ;
  57.       __AddMethod(<"methodName">, <"methodUDF">) [; METHOD <methodN>]
  58.  
  59. #xcommand ENDCLASS => ;
  60.       hClass := __MakeClass();;
  61.     end;;
  62.   oNew := __ClassIns(hClass);;
  63.   oNew\[1] := oParent;;
  64.   RETURN oNew
  65.  
  66. #xtranslate :: => self:
  67.  
  68. #xtranslate super => parent
  69.  
  70. #xtranslate parent([<class>]):<method> => __PARENT(#<class>):<method>
  71.  
  72. #xtranslate parent:<method>:<*Anything*> => ;
  73.   #error Chaining not allowed after overridden method call.
  74.  
  75.